package com.hzit.pay.center.service;

import com.hzit.pay.center.exception.BizException;
import com.hzit.pay.center.model.PaySerialNoInfo;
import com.pay.center.common.req.PayCallBackData;
import com.pay.center.common.req.PaymentQueryReq;
import com.pay.center.common.req.PaymentReq;
import com.pay.center.common.req.QueryPayMethodReq;
import com.pay.center.common.resp.PayMethodData;
import com.pay.center.common.resp.RespPayData;
import com.pay.center.common.resp.Response;

import java.util.List;

/**
 * 支付相关接口
 */
public interface IPayService {


    /**
     * 获取商户支付列表
     * @param queryPayMethodReq
     * @return
     */
    public List<PayMethodData> queryPayMethodList(QueryPayMethodReq queryPayMethodReq) throws BizException;


    /**
     * 执行支付
     * @throws BizException
     */
    public Response<RespPayData> doPay(PaymentReq paymentReq)throws BizException;


    /**
     * 查询支付结果
     * @throws BizException
     */
    public Response<PayCallBackData> query(PaymentQueryReq queryReq)throws BizException;

    /**
     * 支付查询轮询任务
     * @return
     * @throws BizException
     */
    public List<PaySerialNoInfo> queryUnConfirmedList() throws BizException;


    /**
     * 支付关闭接口
     * @throws BizException
     */
    public void payClose() throws BizException;


}
